home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 283_01 / vidinit.h < prev    next >
C/C++ Source or Header  |  1988-12-15  |  3KB  |  121 lines

  1. /* vidinit.h -- 9/5/88, d.c.oshel
  2.    */ 
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <dos.h>
  7. #include <malloc.h>
  8.  
  9. #include "video.h"    /* Microsoft Systems Journal routines */
  10.  
  11. #define SCRLIM 4000   /* 80x25 chars & attrs in screen */
  12. #define TOPX 0        /* 80x25 screen margin defaults  */
  13. #define TOPY 0
  14. #define BTMX 79
  15. #define BTMY 24
  16. #define SPC ' ' /* blank char, for clreol(), etc. */
  17.  
  18.  
  19. /* useful macros */
  20.  
  21. #define ptrseg(P) ((int)(((long)P)>>16))  /* char far * ONLY! */
  22. #define ptrofs(P) ((int)((long)P))
  23.  
  24. #define GOXY ((col+((row<<4)+(row<<6)))<<1) 
  25.  
  26. #define getsynch()   (synchronized)
  27. #define setsynch(X)  {synchronized=(X);}
  28.  
  29. #define hidecursor() setcursize(32,32)
  30. #define defcursor()  setcursize(rasterh,rasterl)
  31.  
  32. #define fullscreen() setwindow(TOPX,TOPY,BTMX,BTMY)
  33.  
  34. #define normal_video()     {vid_attr=vid[0];}
  35. #define intense_video()    {vid_attr=vid[1];}
  36. #define reverse_video()    {vid_attr=vid[2];}
  37. #define warning_video()    {vid_attr=vid[3];}
  38.  
  39. #define rptchar(C,N) MSJ_SetFldAttr(C,row,col,vid_attr,N,&video)
  40.  
  41. /* monochrome monitor attributes :----------------*/
  42.  
  43. #define INV '\000'   /* invisible                 */
  44. #define UNL '\001'   /* underline                 */
  45. #define NRM '\007'   /* normal                    */
  46. #define BRU '\011'   /* bright underline          */
  47. #define BRN '\017'   /* bright normal             */
  48. #define RVR '\160'   /* reverse                   */
  49. #define BLU '\201'   /* blinking underline        */
  50. #define BLN '\207'   /* blinking normal           */
  51. #define BBU '\211'   /* blinking bright underline */
  52. #define BBN '\217'   /* blinking bright normal    */
  53. #define BLR '\360'   /* blinking reverse          */
  54.  
  55.  
  56. /*=========== CIAO Global Data ===========*/
  57.  
  58. extern int vid[16];
  59. extern int rasterh, rasterl;
  60. extern int vid_attr, vid_page, row, col;
  61. extern int lm, rm, tm, bm;
  62. extern int synchronized; /* i.e., hard and soft cursors */
  63. extern char far *hidescreen;
  64. extern char far *scribble;
  65. extern int activescreen, activeoffset;
  66. extern int Initialized;
  67.  
  68. /*============ CIAO Functions ============*/
  69.  
  70. /* vidinit.c */
  71.  
  72. extern void vid_init( int mode );
  73. extern void vid_exit( void );
  74.  
  75. /* gotoxy.c */
  76.  
  77. extern void gotoxy( int x, int y );
  78. extern void setcursize( int r1, int r2 );
  79. extern void clrscrn( void );
  80. extern void clreol( void );
  81. extern void clreos( void );
  82.  
  83. /* swapscrn.c */
  84.  
  85. extern void setscreen( int n );
  86. extern void swapscreen( int n );
  87.  
  88. /* savescrn.c */
  89.  
  90. extern int savecursor( union REGS *x );
  91. extern int restcursor( union REGS *x );
  92. extern char far *savescreen( union REGS *cursor );
  93. extern void restorescreen( char far *scrfptr, union REGS *cursor );
  94.  
  95. /* scrollup.c */
  96.  
  97. extern void scrollup( void );
  98.  
  99. /* scrolldn.c */
  100.  
  101. extern void scrolldn( void );
  102.  
  103. /* window.c */
  104.  
  105. extern void getwindow( int *tx, int *ty, int *bx, int *by );
  106. extern void setwindow( int tx, int ty, int bx, int by );
  107. extern void clrwindow( void );
  108.  
  109. /* wbox.c */
  110.  
  111. extern void windowbox( int tx, int ty, int bx, int by );
  112.  
  113. /* wink.c */
  114.  
  115. extern void wink( char c );
  116.  
  117. /* wputs.c */
  118.  
  119. extern void wputs( char *p );
  120.  
  121.